```shell
#!/bin/bash
echo "#########################系统运行时间#########################"
                              #系统运行时间
    os_run_time=$(uptime |awk '{print $1,$3}'|awk -F ',' '{print $1}')
    echo "系统运行时间：${os_run_time}"
                           #系统最后重启时间
    os_last_reboot=$(who -b|awk '{print $2,$3}')
    echo "系统最后重启时间：${os_last_reboot}"

echo "#########################巡检硬件信息#########################"
                             #CPU 基本信息

# 定义CPU型号

local_model=$(lscpu | grep 'Model name' | awk '{print $3,$4,$5,$6,$7,$8,$9}')

# 定义CPU个数

loca_cpu=$(grep 'physical id' /proc/cpuinfo | sort -u | wc -l)

# 定义CPU核数

local_core=$(lscpu | grep -w  "^CPU(s)" | awk '{print $2}')

# 定义CPU架构

local_arch=$(lscpu | grep -w Architecture | awk '{print $2}')

# 定义CPU操作模式

local_opmode=$(lscpu | grep -w op-mode | awk '{print $3,$4}')

# 定义CPU 空闲时间%分比

local_idle=$(iostat -c |  awk 'NR==4{print $6}')

# 定义CPU 等待I/O线程所占%分比

local_steal=$(iostat -c |  awk 'NR==4{print $4}') 

# 定义系统级别(kernel)运行所使用CPU的百分比

local_system_kernel=$(iostat -c |  awk 'NR==4{print $3}')

# 定义用户级别运行所使用CPU的百分比

local_cpu_user=$(iostat -c |  awk 'NR==4{print $1}')

# 定义系统CPU平均1分钟负载

OS_system_1=$(uptime | awk -F[:,] '{print $8}')

# 定义系统CPU平均5分钟负载

OS_system_5=$(uptime | awk -F[:,] '{print $9}')

# 定义系统CPU平均15分钟负载

OS_system_15=$(uptime | awk  '{print $NF}')
echo "CPU个数：${loca_cpu}"
echo "CPU核数：${local_core}"
echo "CPU架构：${local_arch}"
echo "CPU操作模式：${local_opmode}"
echo "CPU型号：${local_model}"
echo "CPU空闲时间百分比：${local_idle}%"
echo "CPU 等待I/O线程所占百分比：${local_steal}%"
echo "CPU 系统级别(kernel)运行所使用CPU的百分比：${local_system_kernel}%"
echo "CPU 用户级别运行所使用CPU的百分比：${local_cpu_user}%"echo "系统CPU平均1分钟负载：${OS_system_1}"
echo "系统CPU平均5分钟负载：${OS_system_5}"
echo "系统CPU平均15分钟负载：${OS_system_15}"
if [[ "${OS_system_15}"  >  3  ]];then
echo -e "\033[31m巡检CPU平均15分钟异常，请检查CPU负载\033[0m"
else
echo -e "\033[32m巡检CPU平均负载正常\033[0m"
echo ""
fi
#------------------------------------------------------------------------------# 磁盘信息

# 系统盘总容量

xt_system_rl=$(lsblk | grep -w vda | awk '{print $4}' | awk -FG '{print $1}')

# 业务盘总容量

yw_system_rl=$(lsblk | grep -w vdb | awk '{print $4}' | awk -FG '{print $1}')

# 定义磁盘总容量=系统盘+业务盘

OS_system_df_total=$(( ${xt_system_rl} + ${yw_system_rl} ))

# 系统盘占用空间大小

xt_system=$(`which df` -h | grep -w "/" | awk '{print $5}' | awk -F% '{print $1}')

# 定义/dev/vda磁盘设备每秒I/O请求数

vda_device_xt=$(iostat -d | awk 'NR==4{print $2}')

# 定义/dev/vda磁盘每秒读取block数

vda_device_read=$(iostat -d | awk 'NR==4{print $3}')

# 定义/dev/vda磁盘每秒写入block数

vda_device_writn=$(iostat -d | awk 'NR==4{print $4}')

# 定义读入的block总数/

Mvda_read=$(iostat -d -m | awk 'NR==4{print $5}')

# 定义写入的block总数/M

vda_writn=$(iostat -d -m | awk 'NR==4{print $6}')

# 业务盘占用空间大小

yw_system=$(`which df` -h | grep -w "/www" | awk '{print $5}' | awk -F% '{print $1}')

# 定义/dev/vdb磁盘设备每秒I/O请求数

vdb_device_xt=$(iostat -d | awk 'NR==5{print $2}')

# 定义/dev/vdb磁盘每秒读取block数

vdb_device_read=$(iostat -d | awk 'NR==5{print $3}')

# 定义/dev/vdb磁盘每秒写入block数

vdb_device_writn=$(iostat -d | awk 'NR==5{print $4}')

# 定义读入的block总数/M

vdb_read=$(iostat -d -m | awk 'NR==5{print $5}')

# 定义写入的block总数/M

vdb_writn=$(iostat -d -m | awk 'NR==5{print $6}')
echo "磁盘总容量：${OS_system_df_total}G"
echo ""
echo "系统盘的总容量：${xt_system_rl}G"
echo "系统盘磁盘空间占用百分比：${xt_system}%"
echo "vda磁盘设备每秒I/O请求数：${vda_device_xt}/s"
echo "vda磁盘每秒读取block数：${vda_device_read}/s"
echo "vda磁盘每秒写入block数：${vda_device_writn}/s"
echo "vda磁盘读入的block总数/M：${vda_read}/M"
echo "vda磁盘写入的block总数/M：${vda_writn}/M"
if [ "${xt_system}" -gt "80" ];then
echo -e "\033[31m系统磁盘巡检异常，超出80%请尽快清理磁盘空间或者扩容磁盘容量\033[0m"
else
echo -e "\033[32m巡检系统磁盘正常\033[0m"
fi
echo "                                                          "
echo "业务盘的总容量：${yw_system_rl}G"
echo "业务磁盘空间占用百分比：${yw_system}%"
echo "vdb磁盘设备每秒I/O请求数：${vdb_device_xt}/s"
echo "vdb磁盘每秒读取block数：${vdb_device_read}/s"
echo "vdb磁盘每秒写入block数：${vdb_device_writn}/s"
echo "vdb磁盘读入的block总数/M：${vdb_read}/M"
echo "vdb磁盘写入的block总数/M：${vdb_writn}/M"
if [ "${yw_system}" -gt "80" ];then
echo -e "\033[31m业务磁盘巡检异常，超出80%请尽快清理磁盘空间或者扩容磁盘容量\033[0m"
else
echo -e "\033[32m巡检业务磁盘正常\033[0m"
fi
echo "                                                          "
#--------------------------------------------------------# 内存信息

# 定义内存总数/M

Mem_tolal=$(free -m | awk '/Mem/{print $2}')

# 定义已使用内存数/M

Mem_used=$(free -m | awk '/Mem/{print $3}')

# 定义空闲内存数/M

Mem_free=$(free -m | awk '/Mem/{print $4}')

# 定义多个进程共享的内存总额

Mem_shared=$(free -m | awk '/Mem/{print $5}')

# 定义缓存内存数

Mem_cache=$(free -m | awk '/Mem/{print $6}')

# 定义可用内存

Mem_free_kb=$(cat /proc/meminfo | grep Avai | awk {'print $2'})
echo "内存总数：${Mem_tolal}MB"
echo "已使用内存：${Mem_used}MB"
echo "多个进程共享内存总额：${Mem_shared}MB"
echo "空闲内存：${Mem_cache}MB"
echo "可用内存：$(( ${Mem_free_kb}/1024 ))MB"
if [ "${Mem_free_kb}" -le "3145728" ];then
echo -e "\033[31m巡检内存异常发出警告，请注意内存空闲空间低于内存总量30%\033[0m"
else
echo -e "\033[32m巡检内存正常\033[0m"
fi
```


